package org.example;

import java.lang.reflect.Proxy;

/**
 * ClassName: Test
 * Package: org.example
 * Description:
 *
 * @Author wanghao
 * @Create 2024-07-08 8:58
 * @Version 1.0
 */
public class Test {

    public static void main(String[] args) {
        // 1.创建目标对象
        ISale target = new WuDa();
        // 2.创建handler对象（handler：处理器，handler包含了两个信息：a.赠送的内容 b.何时赠送）
        WuDaInvocationHandler handler = new WuDaInvocationHandler(target);
        // newProxyInstance 创建代理对象
        // 三个参数
        // 1.目标对象的类加载器 2.目标类的父接口 3.handler
        // 只有拥有了上面三个“原料”，我们Proxy才能帮我们创建出代理对象
        ISale proxy = (ISale) handler.createProxy();
        proxy.saleShaoBing();
    }
}
